Lender Price API
Pricing a Loan / Pricing Request
In This Topic
    Pricing Request
    In This Topic

    The pricing request specifies the search terms for the pricing search. It contains over 200 fields to fine tune the search as desired.

    Many of the request fields are organized into containers, the most important of which are:

    The request also contains fields to handle rates, filter results, select the mortgage type, lock terms, and more. Refer to Pricing a Loan for details on setting fields for common tasks.

     

    Pricing Request Breakdown

    Copy Code
    curl --location -g --request POST '{{protocol}}{{pricingApiHost}}/rest/pricing/multisearch/{{userId}}' \
    --header 'secret: {{token}}' \
    --header 'companyid: {{companyId}}' \
    --data-raw '{
        "companyId": "{{companyId}}",
        "criteria": {//all search criteria pertainint to the borrower
                    },
        "rateRange": {//set a rate range using the to and from fields here
                     },
        "property": {//all search criteria pertaining to the property
                    },
        "brokerCriteria": {//all search criteria pertaining to the loan broker
                    },
        "accessCriteria": {//internal fields used to tailor the search and not required by the client.
                    },
        "filter": {//options to filter search results by program name or product code
                  },
        "miCriteria": {//search criteria pertaining to the loan
                      },
        "closingCost": {//all search criteria pertaining to the closing cost
                       },
        "termsCriteria": [{{the loan term in years}}],
        "loanPurposeCriteria": [{{loan purpose}}],
        "loanTypeCriteria": [{{loan type}}],
        //additional search fields are listed at this level
      }

     Required and Suggested Fields
    Certain input fields are required for all requests, and others are suggested.

    The following fields are required for every pricing search:

    • Multi Criteria Search Model
      • loanPurposeCriteria (required)
      • loanTypeCriteria (required)
      • companyId (required)
      • termsCriteria (required)
      • maxListingPerRate (required)
      • Access Criteria:
        • companyIds (required, can be empty)
      • Broker Criteria:
        • ausList (required)
        • dayLocks (required)
      • Borrower Criteria:
        • appraisedValue (required if purchase)
        • escrowWaiver (recommended, defaults to false if empty or null)
        • fundingFeeFinanced (recommended, defaults to false if empty or null)
        • guranteeFeeFinanced(recommended, defaults to false if empty or null)
        • firstTimeHomeBuyer (recommended, defaults to false if empty or null)
        • pmiType (required, can be set to default to BPMI, will only run for MI scenario)
        • mortgageTypes (required)
        • mortgageType (can be left empty if mortgageTypes is given, if not, will default to Conventional)
        • Fico (required)
        • loanAmount (required)
        • loanPurpose (optional if loanPurposeCriteria is given)
        • loanType (required)
        • loanYear (optional if termsCriteria is empty)
        • monthlyDebt (required)
        • monthlyIncome (required)
        • propertyUse (required)
        • purchasePrice (required)
        • specialMortgageOptions (optional, depends on client configuration)
        • variableLoanTypes (required, can be left empty)
      • MiCriteria:
        • miCompanyName (required for MI)
      • Property:
        • Address (required, zip and state minimum)
        • numberOfUnit (required)
        • propertyType (required)

       

      The following fields are not required but are suggested:


     Example Recommended Minimum Payload with Minimum Field Response
    IMPORTANT: The “Fields” section filters out the amount of fields coming back in the response for each qualified program. Only the fields listed in “fields” will return. Lender Price recommends implementing the “Fields” section after the client has done its due diligence and mapping with a full response. Removing the “Fields” section will return the full response for each qualified product.

     

    Copy Code
    curl --location 'https://{{protocol}}{{pricingApiHost}}/rest/pricing/multisearch/{{userId}}' \
    --header 'secret: {{token}}' \
    --header 'companyId: {{companyId}}' \
    --header 'Content-Type: application/json' \
    --data '{
      "companyId": "{{companyId}}",
      "accessCriteria": {
        "userContext": null
      },
      "brokerCriteria": {
        "ausList": [
          "None",
          "GUS",
          "MUW",
          "LP",
          "DU"
        ],
        "dayLocks": "30"
      },
      "criteria": {
        "loanAmount": "400000",
        "purchasePrice": "600000",
        "appraisedValue": "600000",
        "monthlyIncome": "150000",
        "monthlyDebt": "3000",
        "escrowWaiver": "false",
        "fico": "740",
        "firstTimeHomeBuyer": "false",
        "fundingFeeFinanced": "YES",
        "guranteeFeeFinanced": "YES",
        "loanPurpose": "Purchase",
        "loanType": "Fixed",
        "mortgageType": "Conventional",
        "mortgageTypes": [
          "Conventional"
        ],
        "pmiType": "BPMI",
        "propertyUse": "PrimaryResidence"
      },
      "loanPurposeCriteria": [
        "Purchase"
      ],
      "loanTypeCriteria": [
        "Fixed"
      ],
      "maxListingPerRate": "3",
      "miCriteria": {
        "miCompanyName": null
      },
      "property": {
        "address": {
          "state": "CA",
          "zip": "91101"
        },
        "numberofUnit": "1",
        "propertyType": "SingleFamily"
      },
      "termsCriteria": [
        "30"
      ],
      "fields": [
        "resultMap.resultRates.data._ANY_.rateGrid.productCode",
        "resultMap.resultRates.data._ANY_.rateGrid.name",
        "resultMap.resultRates.data._ANY_.basePoints",
        "resultMap.resultRates.data._ANY_.adjustedRates",
        "resultMap.resultRates.data._ANY_.rawAdjustmentPoints",
        "resultMap.resultRates.data._ANY_.adjustedPoints",
        "resultMap.resultRates.data._ANY_.borrowerPaid",
        "resultMap.resultRates.data._ANY_.finalClosingCost",
        "resultMap.resultRates.data._ANY_.apr",
        "resultMap.resultRates.data._ANY_.miPriceDetail.miPayment",
        "resultMap.resultRates.data._ANY_.monthlyPayment.monthlyPI",
        "resultMap.resultRates.data._ANY_.monthlyPayment.total",
        "resultMap.resultRates.data._ANY_.monthlyPayment.mi",
        "resultMap.resultRates.data._ANY_.monthlyPayments.mi",
        "resultMap.resultRates.data._ANY_.borrowerPaidDetails.amount",
        "resultMap.resultRates.data._ANY_.borrowerPaidDetails.code",
        "resultMap.resultRates.data._ANY_.borrowerPaidDetails.name",
        "resultMap.resultRates.data._ANY_.borrowerPaidDetails.isOrigination",
        "resultMap.resultRates.data._ANY_.borrowerPaidDetails.aprRelated",
        "resultMap.resultRates.data._ANY_.groupAdjustmentProperties.disqualifyAdjustments"
      ]
    }'
     Example Pricing Request
    Copy Code
    curl --location -g --request POST '{{protocol}}{{pricingApiHost}}/rest/pricing/multisearch/{{userId}}' \
    --header 'secret: {{token}}' \
    --header 'companyid: {{companyId}}' \
    --data-raw '{
        "date": null,
        "companyId": "{{companyId}}",
        "criteria": {
            "purchasePrice": 500000,
            "loanAmount": 400000,
            "lineAmount": 0,
            "rehabBudget": 0,
            "drawAmount": 0,
            "subordinateLoanAmount": 0,
            "pmiType": "None",
            "monthlyIncome": "5000.00",
            "monthlyDebt": "2150.00",
            "loanYear": 30,
            "loanPurpose": "Purchase",
            "loanType": "Fixed",
            "mortgageType": null,
            "mortgageTypes": [
                "Conventional"
            ],
            "propertyUse": "PrimaryResidence",
            "ownProperties": 0,
            "specialMortgageOptions": [],
            "fundingFeeFinanced": "YES",
            "inclusive": false,
            "varaiableLoanTypes": [],
            "fico": 760,
            "downPaymentAmount": 0,
            "isFirstLienSame": "",
            "escrowWaiver": false,
            "lenderFeeWaiver": true,
            "compensationType": "LenderCompPlan",
            "lienPriorityType": "FirstLien"
        },
        "rateRange": {
            "@class": "com.cre8techlabs.entity.range.DoubleRangeLeGt",
            "from": null,
            "to": null
        },
        "property": {
            "address": {
                "longitude": null,
                "latitude": null,
                "censustract": "06037",
                "street": "",
                "streetCont": "",
                "city": "Pasadena",
                "zip": "91101",
                "zipExt": "",
                "state": "CA",
                "province": "",
                "county": "06037",
                "countyName": "",
                "country": "US"
            },
            "propertyType": "SingleFamily",
            "numberOfUnit": 1,
            "attachmentType": null
        },
        "brokerCriteria": {
            "displayConventionalRate": false,
            "minimunCompensation": null,
            "maxCompensation": null,
            "overrideExistingComplan": false,
            "compPlan": null,
            "qmFilterLimit": null,
            "rateTypes": [],
            "sortView": "LenderPaid",
            "businessSourceType": "BST_NA",
            "divisionSourceType": null,
            "feeServicer": null,
            "feeServicerList": [],
            "dayLocks": 30,
            "dayLocksList": [
                14,
                15,
                21,
                30,
                45,
                60,
                90
            ],
            "ausList": [
                "None",
                "LP",
                "DU"
            ],
            "closingCostRange": {
                "@class": "com.cre8techlabs.entity.broker.BrokerCriteria$RangeClosingCost",
                "from": null,
                "to": null,
                "closestToPar": false,
                "infinite": true
            },
            "searchContext": {}
        },
        "accessCriteria": {
            "marketPlaceSearch": false,
            "companyIds": []
        },
        "filter": {
            "programNames": [],
            "productCode": []
        },
        "showDisqualify": false,
        "showDisqualifyRules": true,
        "showUnmatchCompPlan": false,
        "rateGridIds": [],
        "ratePeriodIds": [],
        "miCriteria": {
            "miCompanyId": null,
            "miCompanyName": null,
            "amortizationType": "FullyAmmortized",
            "loanType": "Fixed",
            "duLpDecision": "DU_Approve_Eligible",
            "buyDownPercent": "None",
            "originationChannel": "Retail",
            "loanProgram": null,
            "renewalType": "Constant",
            "paymentPlan": "EZMonthly",
            "paymentType": "Monthly",
            "coBorrowerFicoScore": null,
            "varaiableLoanType": null,
            "numberOfDeferredPayments": 0
        },
        "closingCost": {
            "closingCostGroup": [],
            "settlementCost": {
                "origination": {
                    "othersLabel": "Fee",
                    "others": 0,
                    "underwritingLabel": "Underwriting",
                    "underwriting": 0,
                    "administrationLabel": "Administration Fee",
                    "administration": null,
                    "lenderCreditLabel": "Lender Credit",
                    "lenderCredit": null,
                    "total": 0
                },
                "titleService": {
                    "overrideTitle": false,
                    "titleInsuranceLabel": "Title Insurance Cost",
                    "titleInsurance": null,
                    "borrowerTitlePaidPercentLabel": "Borrower Title Insurance Percent",
                    "borrowerTitlePaidPercent": 0.5,
                    "overrideEscrow": false,
                    "escrowCostLabel": "Escrow Cost",
                    "escrowCost": null,
                    "borrowerEscrowPaidPercentLabel": "Borrower Escrow Cost Percent",
                    "borrowerEscrowPaidPercent": 0.5,
                    "notarySignLabel": "Notary Sign",
                    "notarySign": 145,
                    "total": 145
                },
                "thirdPartyServices": {
                    "appraisalLabel": "Appraisal",
                    "appraisal": 500,
                    "taxServiceLabel": "Tax Service",
                    "taxService": 0,
                    "creditReportLabel": "Credit Report",
                    "creditReport": 0,
                    "floodCertificationLabel": "Floor Certification",
                    "floodCertification": 12,
                    "overnightLabel": "Overnight",
                    "overnight": 16,
                    "recordingLabel": "Recording",
                    "recording": 85,
                    "total": 613
                },
                "closingCostGroup": [],
                "total": 758
            },
            "useClosingCost": false,
            "useCompanyDefaultClosingCost": false,
            "useErnstCost": false,
            "allowErnstQuote": false,
            "total": 758
        },
        "rate": null,
        "maxListingPerRate": -1,
        "skipAdjustments": false,
        "name": null,
        "termsCriteria": [
            30
        ],
        "loanPurposeCriteria": [
            "Purchase"
        ],
        "loanTypeCriteria": [
            "Fixed"
        ],
        "varLoanTypeCriteria": [],
        "code": "FLEX"
    }'